package com.six.service.impl;

import com.six.domain.User;
import com.six.mapper.LoginMapper;
import com.six.service.LoginService;
import com.six.util.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.validation.constraints.NotBlank;
import java.util.List;

/**
 * @program: shopping
 * @description:
 * @author: hui.zhang
 * @date: 2021/4/7 11:35 上午
 **/
@Service("LoginService")
public class LoginServiceImpl implements LoginService {
    @Autowired
    private LoginMapper loginMapper;
    @Override
    public Result register(){
        //       创建准备注册的用户名和密码
        String uname = user.get("uname");
        String password = user.get("password");
//       判断用户名，密码是否为空
//       ！= 判断 若用户名和密码不为空，则调用方法queryByuname查找
//       若用户名和密码为空，则返回“添加失败，用户名密码不能为空”的提示
        if ( uname != null && password != null){
            List<User> users = loginService.queryByuname(uname);
//           判断是否有重复用户名
//           若有重复返回一个“注册失败”的结果，
//           若数据库中没有则调用addUser添加用户和密码，提示“注册成功”的结果
            if (users!=null && users.size()>0){
                return new Result(111,"注册失败，用户名重复，请更换",-1);
            }else {
                int count =LoginService.(user.get(uname),user.get(password));
                if (count>0){
//                   没有重复用户名，注册成功
                    return new  Result(999,"注册成功",1);
                }else {
                    return new Result(111,"注册失败",-1);
                }
            }
        } else {
            return new Result(111,"注册失败，请检查用户名，密码是否为空",-1);
        }

    }
    @Override
    public Result login(){
        String uname = user.get("uname");
        String password = user.get("password");
//        判断密码、用户名是否为空
        @NotBlank
        if (uname != null && password != null) {
            List<User> users = loginService.queryByuname(uname);
            //        判断用户名是否存在
            if (uname != null && users.size() > 0) {
                User User = users.get(0);
//                判断密码是否正确
                if (password == User.getPassword()) {
//                    密码正确，登录成功
                    return new Result(999, "登录成功", 1);
                } else {
                    return new Result(111, "登录失败,密码错误", -1);
                }
            } else {
                return new Result(111, "登录失败，用户名不存在", -1);
            }
        } else {
            return new Result(111, "登录失败，请检查用户名、密码是否为空", -1);
        }

    }
    }
    @Override
    public int addUser(String uname, String password) {
        User user = new User();
        int count =loginMapper.addUser(user);
        return count;
    }
    @Override
    public List<User> queryByuname(String uname){
        List<User> userList =loginMapper.queryByUname(uname);
        return userList;
    }
}
